uses core-transition to help manage opened state transitions