Added maintenence class for restarting and updating, moved more objects to the lib object and added a specialised startup script to allow the new maintenence class to function