Monitor refactored as interface