refactor, less code