[ADD] many changes