firstly initialize