refactor/clean up