refactoring everything, so I can push new links into my model