union function completed