windows implementation