Made castable types accessible to unit tests
Cache in instance variable to avoid auto-scan on class load. Should make no performance different in normal use due to @Singleton.