edited introduction: added problem def and goal