Fix redundancy
Use unions instead of exceptions in preprocessor and all readable modules