Completed ModelManager, but haven't tested yet. Unsafe to merge.