change setter injection into constructor injection