Networking

Someone should probably read through, @sseago? Let me know if you prefer me to squash first.
I'm not sure about this, this is causing various issues when you create records using through association. Maybe we should rather add constraint to database?