before crazy
refactor, done