init method now much shorter