added abstract multiton