merged classical and prototypal inheritance