split up interface, implementation, driver
Merge branch 'master' of github.com:ncoop/study