// TODO need transfer the draw code into another file without share with others!