adjust init function