Modified singleton to allow argument passing on initialisation.