FUNCTIONAL - parallelised,no clumping,recursive subroutine,no splitting