Support windows (+ some refactoring)