moving classes around and preparing for multi-threaded execution