finally implemented disappear and end