Move system code into separate system manager class