fixing recursive