Ticket Model

Huge update to the ticket model
Has 200+ lines of untested code
Use at own risk