implementation for Windows8