fixed memoisation bug