do vise recursive
checked initalized to 0