implements boolean auto complete
add test for ambiguous commands
let the project be compilable
refined the command lookup (this cause less Ambiguous Exceptions)