Updated to Canary recode and converted to Maven project