adds unions and accompanying tests