completed monitor object refactor