One more pure virtual to implement.
Implementation itself