use interface instead of concrete implementation class.