patience grasshopper ... function in progress