texture now optional