Added docs and UsageRecords filtering
clean up filters
cleaned up structs, UsageFilter param is a pointer

because a struct cannot be nil, but a pointer can.
Exception now is an Error
fixed example
whoops
added UsageRecord example
more cleanup
less typing