genericizing input component as base for all other inputs