add abstract class for BaseParam