add keepExt
add context support
Merge branch 'master' into working