NEW: Moving to OOP, creating Interfaces, Builder and TestType