making better project structure and package hierarchy
giving classes proper names