initial widget interfaces and impls