speed up by using shapes, support for internal modules