added direct3d and some other stuff