refactored payment model
error classes