Found a bug - default_params were shared between all classes in hierarchy. Fixed that. Also raise an error if unrecognized parameter is used in instantiation parameters. And added a couple more tests for things like making sure overridden class methods worked properly.