recursive-reverse is now recursive
format instead of str, more higher-order fns