remove recustion