refactored flat alert to have abstract super