implement ExecutionService instead of inheriting from AbstractExecutionService
rename underlying implementations as 'delegate'
use MetricRegistry#name instead of doing concatenation manually
use a Meter for completed tasks
make Metric members private and retrieve them from the registry for testing
format to adhere to project code convention