decoupled view and DOM a little