Position, color, texture are now made by a func