finished shape interface, implemented all GC callbacks