Feature/button background image, closes #80 and #82

`state` before `format`, again for consistency with other functions.