use xtend
reduce object garbage