refactored medable code into CBCMedable singleton