modify Shape interface more scalable.