Cleaned up constructor for Input