made method pure virtual, because it has no impl