Solve issue #6. It was hard but I learned alot about async opeation.