refactoring packages. Adding top-level package "headfirst"