structure up!
refactor and structure