redefine init function