splitting subsystems out