modify by charles