Improving and documenting custom widget creation