first go at implementing the async-by-default view manager