feat: contact type as select2 component