refactored classes in to different files
merging n stuff