add chain of responsibility pattern by structural example