Input Class

New implementation of Input Class