synchronous implementation
0.3.0