generic api architecture on egpc
made generic actions that can be shared by different modules