provided an initial implementation of @singleton