Separate ViewModels out of BL