refactor a few things to support associations still ;)