added windows support, however still needs some work