create multivariate abstract class (#4)