added shadow functions.