final commit, should work, will rebase later