refactor
add interface Form