Updated (this is now my Main Project, testing will be done elseware)