proto init implementation + less