adding cane, taking out expensive calculation