weak_ptrs to break circular dependencies for drawables and windows