add window operations
add closure