almost feature-complete for 0.1