with return values.
do not commit materials.