refactored type set for windows and implements some test