replace gets
add control interface