must use deletion because we can't do nested transactions
No can haz sqlite nor rails < 3.2.
use first_or_create instead of 4.0'ism of find_or_create_by