first crack at widget helper