tested by hand, fixed errors, seems to work OK; >> v0.0.1