Added method input() to create from inputs
Refactoring to support Dynamic Typed Method Chaining