initial commit, working prototype, messy