strict string comparison.
fix
spec
create function
rearrange code with forward declaration
test for different situation.