refactor, clean