func (m *MapStore) ReadPuppy(id uint32) *Puppy {
	if p, ok := m.ms[id]; ok {
		return &p
	}
	return nil
}
ReadPuppy read a puppy given its id.
It returns the pointer to that puppy.
package main
type MapStore struct {
	ms      map[uint32]Puppy
	counter uint32
}
func NewMapStore() *MapStore {
	var newMapStore = MapStore{}
	newMapStore.ms = map[uint32]Puppy{}
	return &newMapStore
}
func (m *MapStore) IncrementCounter() {
	m.counter++
}
func (m *MapStore) CreatePuppy(p *Puppy) uint32 {
	m.IncrementCounter()
	p.ID = m.counter
	m.ms[m.counter] = *p
	return p.ID
}