minor
add abstract