renamed exception
used enums for constants