init
stage 1 implementation