use prototypal inheritance instead of the much slower $.extend({}, ...)