1. Make i/o loop engines interchangable at run time. 2. Finish TODO list