finish  but still need to look at delete