initial commit, MVP 80% complete