playing with self executing functions