Changed non-standard unions and fixed constructor