Refactoring - Classes Extraction

Some classes were extracted documentation headers added and some code
formating