added a snake model, and better serialization