dashboard widgets refactor