var placeholder = [5]byte{}
func (n Notification) ToBinary() ([]byte, error) {
....
/* write header place holder*/
buf.Write(placeholder[:])
/* write fields: token,payload... etc */
...
/* rewrite header */
b = buf.Bytes()
b[0] = commandID
binary.BigEndian.PutUint32(b[1:5], uint32(len(b)-5))
return b, nil
}