a trick for recursive problems