adjust __init__ function