union and in added, lots of cleanups