refactor, ect