add union method and tests