making Pricer and abstract class instead of interface to share code