abstract class for all synthesizers