refactory with many to one annotation