update the header
add a decent commentary
add a minor mode so it's easy to use.