refactored monitor interface