Subclass must implement