some nice looking refactors