lots of work, lazy commit, soooo bad