initial proj structure, prerequisites,
add set_nonblocking function