updated with ratio lock