work on handling inputs