Simplified code, added subsystem methods.