Fix tests on windows
Make errors constants
Pointer receivers
Use fmt.Errorf
Path equality
Add *.*~ to .gitignore