update
better init
init