Huge clean up and refactor of code
adding new files