without interface, but work it perffect
test interface with goto
test interface with do-while