initial checkin with texture/2d support