Initial naive implementation using blocking calls