added IShape, removed unused Events and methods, reimplemented Rectangle