extract common
task02 initial