refactor
add Task class