tons of changes nothing for push
more major abstractions into functions
rm leftover