recursive sol
virgin