finished refactoring abilities