rewrite:
refactor third and forth ppt