Added version enums and execeptions