big refactor, many-join collection is working, but eager loading only for now