simplified interface, incomplete but compiling on posix'es