annotation widget refactored