finish code ,need text