added other basic shape implementations, still missing over ride functions