realy last refactor