implement requirements #8, #7: cuong edit