make functions self-invoking