initial implementation, ver. 0.1.0