add destroy method and add some check