unnecessary range vars (golint)
export the App type (golint)
comments (golint)
Type doesn't need to be embedded
no need for pointers on type receivers
comparable, numeric & ordered needn't be exported
lose some naked returns