classic rewritten init