returnType is now optional in contruction
using setter injection instead of constructor injection