Added extras to input
cleaned and extended output class