better completion, test... and much simpler do_execute
closes #1