Add interact flag. Refactor all the project.