reassigned shape mapping (this one is better)