recursively cut