Protocolo refeito usando herança do JavaScript.

Ainda não encontrei um meio de chamar SUPER facilmente.