close #19 add CTexture and remake CTextureFactory