a few more recursions