Refactoring, waits some commenting