Added docstrings, examples, virtual method