the common handler interface