works on both linux and windows