Got rid of stupid enum name clashes by replacing everyone of them with enum class (side note: C++11 owns)