basic functionality is now working, merging back to master