add view pattern