Fixed several type errors, but NOTE if we still plan to use this, someone needs to code support for keyword params, this was written before constructors had them