For one thing this lazy instantiation is a bit of a problem. If you create a single instance normally or through Elysia's factory before other threads start, you won't have this problem.

Using the singleton in multiple threads might be quite problematic though.