This is a wiki project. I will finish it as several stage.