refactor again
make sure everything is in the commit