added crop_y_offset, crop_shrink and refactored crop into smaller methods