Using some descriptor magic to enable inversion of methods