template method.
Merge branch 'origin/draft'