Added button.lua, DW20's button API, slightly modified