refactor more