Add interfaces and make classes chainable