amcl refactoring & expose c++ library