moved association things into a separate modules