fastcore algorithm