extended init