first statle version
optimize a little
get rid of mistake
change map name
enhance by use array