added bfs refinement, Calleable union type