switching to prototypal inheritance to simplify the mixin mechanic