More clean up
Improved interface, added operator ^ (), using boost library