use constructor injection instead of setter