Union code in, haven't tested