1. Some reorganizing
2. I/O is now implemented