transparency is kind of working and so is recursion