refactor Task class and specs
refactor client
refactor Project
add some validation