refactor / clean up