completed the engine. Tested on surface

Windows 8 support is questionable. Updated deprecated apis without
affecting windows 8 compatability but have no way to test