Widget init refactor