Major Rebasing 

Please comment !

!! DO NOT MERGE JUST YET !!