close #149 hasMany support done