added abstract figure class