add return value
add interactive for win32