modified on linux platform