dependency injection
serialization tree