The user is responsible for creating widgets (which must be derived from SNode) and any custom drawing code desired. The other main restriction is that each SNode instance must have a unique UObject* associated with it.