Most of the Graphics Implamentation added