Tested on macos and windows