why is the singleton needed here?