fix  init
Add pre-conditions