Add handler abstraction, add supervisor and metric plugin