few fixes
add virtual destructor