fully working lazy load for both components and viewModels, misc cleanup and updated spec test for component support