Refactoring input

Adding in lazy initializing, and refactoring input to match other ports.