added delete through relationships. should probabaly be refined a bunch.