Move logic into System class