better OO design around input
create Input class