add some memo
some design