nano javascript mvvm framework