work on OS types