Created new Object Oriented structure, still needs accurate testing