added self-invoking anonymous function [sif]