first commit ,complete the main feature