Added auto ids, push method, and refined event handling.