Added more organized input and output facility