initial work infinite recursion somewhere
fixed infini recursion
fixed merge conflicts