3 phase constructor