big update, better split up at initialization