Restructuring
Restructure
More additions from Simon's code
Remove Dead code