refactored some logic into proxy linker to allow integration with other MVVMs