Add initialization flexibility