Fully Functional Version

This is a Fully Functional Version, although it could still use some
cleaning up