Added support for lots of different shape types