attempt to dry up hooks some

also, adds 2 second timeout to api requests, which might be helpful, but
is mainly because the api has been down for many months

close #32 (PR)