This should be abstract.