# Framework related code

- Util
    - General Functions
    - Key Handler
    - Theme Service
    - Alert Service

- Mast
    - Masthead

- Svg
    - Glyph Service
    - Icon Service
    - Map Service
    - Zoom Service

- Layers
    - Flash Service (transient messages)
    - Panel Service (floating panels)
    - Quick Help Service (key bindings, mouse gestures)
    - Death Mask Service (loss of server connection)

- Remote
    - Login Service
    - Web Socket Service

- Widget
    - Table Styling Directives
    - Toolbar Service
