code divided into filtering (eq.*) and UI (ui.*)