major update, changed the whole OOP method, to a better clearer version, still fixing, cant be run