Attempt to avoid some recursion?