add button skeleton
change event handlers to delegated to support generated elems