Added some good comments and a new hash change event

this hash change is based on setInterval