using shared pointer for cuts