add fun construct