add flag presenter + improve code organization