shell with own function