added parallelisation to surface
applied Jay's which make egb0a and egb0b produce the same results