added union code