prevent direct bean instantiation