new class Shape and new functions