extracted bits of GraphPane to allow for viewmodel creation