huge, huge refactor, abstracted collection views/controllers, closes #39