make signal typing more flexible
update the base Item api
wip update to button