split widget creation code to separate file, more ricing