update with faster codes