Feature/refactor relation

/to @ritch 
is this return value new? looks handy either way.