init protocol