Major changes to improve flow 

Removed unneeded code, simplified and expanded on structure, improved documentation