TODO add database constraints to prevent broken contact data