add summary, scroll to top

also refactor handlers (just pass in function name)