AbstractVariable extends Variable (no more type param)

add annotations