extract task class
#4 code cleansing