refactoring begin..
refactoring... types are a new package