update with new crop-from function