design and shape shift

Improved design, added implementation of shape shift.js