nicer refactors