(reduce callig constructor)