Hi, I'm pretty new to Zephir and I'm looking a lot on the phalcon 2 zep files to better understand phalcon and zephir. There's one thing that bothers me all the time and I'm not able to find something relevant enough to give me an good answer.

Extending another class:

As an example I'll use Phalcon\Http\Response and Phalcon\Http\Request: Both these classes implement Phalcon\Di\InjectionAwareInterface which leads to that both classes need to implement the methods of the interface. Since the implemented methods of InjectionAwareInterface are always the same, wouldn't it be better to extend an abstract class already implementing these methods? Same behaviour apears to be used with Phalcon\Events\EventAwarenessInterface.

Usage of own class methods:

I really often saw that i.e. getMethods are implemented but not used inside the class itself, is this because different contributors have their own coding-style or is it something zephir-performance related and simply wasn't used consequently?

(referencing i.e.: Phalcon\Http\Response->getHeaders() vs. this->_headers on line: #116 vs #560

Thanks in advance.