added func and action interfaces