fix bugs
add result fun