change transformInput to protected