move required contract for adapter into interfaces so implementers can swap out the adapter completely
allow disabling of edit mode
add listener callback for enter/exit edit mode
make sure click and long click are used even if the user doesn't supply their own implementations