refactoring guardedMgu with positions