Reworked all methods, added constructors, get and set methods