[*BREAKING API CHANGE*] Added custom formatter as an interface