recursive scaling