Made more OOP firendly, seperated out each object to a script