first round refactor putting things in different ns