Organised JavaScript Models and ViewModels