fixed method signatures to allow instance to be subtyped