added delete and delete_recursive method