added support for abstract methods