update gitignore
update gitignore
clean up
introduce class Printable for I/O handling