texture loader does not depend on implementations