init re-write