moved defaulted things to the prototype to be overridden on instances