Undid singleton service changes because they'd break updates, will reimplement later