more control flow work