only use default at __init__

discuss