Added has_one_through functionality