initial commit
extracting interface
lots of things
using subdir in test
updating versions