add a custom surface::Input with type & value parameters
typos