dependency injection
static/dynamic