added lazy shape simplification