feature(view) add