add auto __init__