https://web.archive.org/web/20170215091440/https://www.cs.fsu.edu/~zwang/files/cop4610/Fall2016/windows.pdf