work on makeConstructor (from spec)