Adding support to work on windows

Fixes #47 #43 and #25