Cleaned and extended input class