fully implemented switching locations