several improvements in view class
added a promise based denounce