added shape abstract class and other shapes