WIP, use service singleton