moving more to shape class