modified functions