Initial commit. Synchronous version with working server and client