refactoring off-canvas navigation