Pascal Kleijer: --------------- Here are some pointers on what can be done for the future revisions. - Naming. The different APIs do not respect all the same naming pattern. Some like files are a direct UNIX style command line translation (i.e. "ls" should be "list"). I would recommend using a uniform method, attributes and constant naming. If you use OO design then stick with OO paradigm. Use full naming instead of acronyms or abbreviations, unless they are commonly known and used like URL, HTTP, CPU, etc. SAGA_NumCpus should be SAGA_NumberCpus or SAGA_CPUCount. This makes it much easier to read in the source code then cryptic names. - The use of all upper case of lower case in naming is subject to discussion. But by habit all constants are in upper case, attributes and methods in lower case unless they are composite names. - Use of "_" in names is C style programming. In OO it is only used if upper or lower case mix naming cannot be used, for example a constant. So "byte_written" becomes "byteWritten" or "SAGA_JobCmd" would become "SAGA_JOB_COMMAND". Depending on who write each API you can see the writer\222s main coding language influence. For more information about code convention, SUN Microsystems has a good tutorial: http://java.sun.com/docs/codeconv/. Yes it is for Java but it can be applied to any OO based language or procedural language. - Typos: well there a number of typos to be removed. OK it is still a v0.2 ;) - In the stream API for the "write" and "read" methods. Why not add an 'offset' attribute to the calls? This might be language specific, but in Java for example you can not just shift the initial pointer like in C/C++ so the data always has to start at 0. Forcing to buffers to be used at index 0 all the time might not be welcome and additional programming overhead will be necessary to use the API.