added non-convex extension