public static
get_instance(): singleton
gets the instance via lazy initialization (created on first usage)
public
__wakeup()
prevent from being unserialized (which would create a second instance of it)