add annotation
remove needless code
add dependencies