use pushd/popd to keep directory