Reflections

Here is a standalone pull request to refactor associations as reflections. Addresses most of the comments in #55