Feature/refactor relation

/to @ritch 
Is there a way to avoid this weird getter that returns a function? It is the source of a lot of pain in strong remoting.