Access to the rest of the system. This capabilities are provided via an object, which can be replaced for unit-testing.