for material flow