added dependencies and specs
add logic