working with base class pointer
closes #59, closes #63