volume recursion