moved out input types into seperate component