completed __init__