recursive version only
tweaking spike params