Change raise to fail
Add Fulfillable interface
Remove spaces
Add fulfill! and reverse! to item models to allow better separation of fulfillment concerns